package com.sheng.leetcode.year2024.month04.day01;

import org.junit.Test;

/**
 * @author by ls
 * @date 2024/4/18
 * <p>
 * 2810. 故障键盘<p>
 * <p>
 * 你的笔记本键盘存在故障，每当你在上面输入字符 'i' 时，它会反转你所写的字符串。而输入其他字符则可以正常工作。<p>
 * 给你一个下标从 0 开始的字符串 s ，请你用故障键盘依次输入每个字符。<p>
 * 返回最终笔记本屏幕上输出的字符串。<p>
 * <p>
 * 示例 1：<p>
 * 输入：s = "string"<p>
 * 输出："rtsng"<p>
 * 解释：<p>
 * 输入第 1 个字符后，屏幕上的文本是："s" 。<p>
 * 输入第 2 个字符后，屏幕上的文本是："st" 。<p>
 * 输入第 3 个字符后，屏幕上的文本是："str" 。<p>
 * 因为第 4 个字符是 'i' ，屏幕上的文本被反转，变成 "rts" 。<p>
 * 输入第 5 个字符后，屏幕上的文本是："rtsn" 。<p>
 * 输入第 6 个字符后，屏幕上的文本是： "rtsng" 。<p>
 * 因此，返回 "rtsng" 。<p>
 * <p>
 * 示例 2：<p>
 * 输入：s = "poiinter"<p>
 * 输出："ponter"<p>
 * 解释：<p>
 * 输入第 1 个字符后，屏幕上的文本是："p" 。<p>
 * 输入第 2 个字符后，屏幕上的文本是："po" 。<p>
 * 因为第 3 个字符是 'i' ，屏幕上的文本被反转，变成 "op" 。<p>
 * 因为第 4 个字符是 'i' ，屏幕上的文本被反转，变成 "po" 。<p>
 * 输入第 5 个字符后，屏幕上的文本是："pon" 。<p>
 * 输入第 6 个字符后，屏幕上的文本是："pont" 。<p>
 * 输入第 7 个字符后，屏幕上的文本是："ponte" 。<p>
 * 输入第 8 个字符后，屏幕上的文本是："ponter" 。<p>
 * 因此，返回 "ponter" 。<p>
 * <p>
 * 提示：<p>
 * 1 <= s.length <= 100<p>
 * s 由小写英文字母组成<p>
 * s[0] != 'i'<p>
 */
public class LeetCode2810 {

    @Test
    public void test01() {
//        String s = "string";
        String s = "poiinter";
        System.out.println(new Solution().finalString(s));
    }
}

class Solution {
    public String finalString(String s) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            if ('i' != s.charAt(i)) {
                sb.append(s.charAt(i));
            } else {
                sb.reverse();
            }
        }
        return sb.toString();
    }
}
